/*        
	Copyright (C) 2010- Peer internet solutions

	Copyright (C) 2013 Pontificia Universidad Catolica del Peru
	contact: http://avatar.inf.pucp.edu.pe/realidad-aumentada/
	address contact: Av. Universitaria 1801, San Miguel, Lima-Peru.

	This file is part of UbicAR PUCP.
	
	This program is free software: you can redistribute it and/or modify
	it under the terms of the GNU General Public License as published by
	the Free Software Foundation, either version 3 of the License, or
	(at your option) any later version.

	This program is distributed in the hope that it will be useful,
	but WITHOUT ANY WARRANTY; without even the implied warranty of
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
	GNU General Public License for more details.

	You should have received a copy of the GNU General Public License
	along with This program.  If not, see <http://www.gnu.org/licenses/>.
*/
/*
	Modified by: Pedro Carrión Castagnola
	Pontificia Universidad Catolica del Peru
	Direccion de Informatica Academica

	Modified by: Alvaro Roger Agüero Sánchez, Rodolfo Javier Galvez Meza
	Pontificia Universidad Catolica del Peru
	Departamento de Ingeniería
*/

package org.grupoavatar.guiaubicua.mix.data;

import java.util.ArrayList;

import org.grupoavatar.guiaubicua.VFiltro;
import org.grupoavatar.guiaubicua.VInicial;

import android.graphics.Bitmap;
import android.graphics.Bitmap.Config;
import android.graphics.Canvas;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import org.grupoavatar.guiaubicua.R;
import org.grupoavatar.guiaubicua.auxiliares.Item;
import org.grupoavatar.guiaubicua.auxiliares.Utiles;

/**
 * @author hannes
 *
 */
public class DataSource {
	
	public final static DATASOURCE[] genericos = {DATASOURCE.ASESORIA_PASTORAL,
													DATASOURCE.ASOCIACIONES_Y_GRUPOS,
													DATASOURCE.CENTROS_DE_ESTUDIOS_Y_CENTROS_DE_INVESTIGACION,
													DATASOURCE.DEPORTES,
													DATASOURCE.DIRECCIONES_Y_OFICINAS,
													DATASOURCE.EDIFICIOS,
													DATASOURCE.ESTACIONAMIENTOS,
													DATASOURCE.FACULTADES_AUDITORIOS_Y_LABORATORIOS,
													DATASOURCE.INSTITUTOS_GENERICO,
													DATASOURCE.LIBRERIAS,
													DATASOURCE.PAGOS_Y_TRANSACCIONES,
													DATASOURCE.SERVICIOS_ALIMENTICIOS,
													DATASOURCE.PAPELERIA_Y_SERVICIOS_DIGITALES,
													DATASOURCE.SERVICIOS_DE_SALUD,
													DATASOURCE.SERVICIOS_HIGIENICOS,
													DATASOURCE.SISTEMAS_DE_BIBLIOTECAS_Y_SALAS_DE_LECTURA,
													DATASOURCE.TELEFONOS,
													DATASOURCE.VARIOS};
	
	
	
	// Datasource and dataformat are not the same. datasource is where the data comes from
	// and dataformat is how the data is formatted. 
	// this is necessary for example when you have multiple datasources with the same
	// dataformat
	public enum DATASOURCE {
//		LUGARESURL, 
		EVENTOSURL,
//		LFACULTADES,
//		LDEPARTAMENTOS,
		
//		LAUDITORIOS,
//		LBIBLIOTECAS,
//		LCAFETERIAS,
//		/*LINSTITUTOS,*/
//		LCENTROS,
//		LDIRECCIONES,
//		LOTROS,
		
		//NUEVO: NUESTRAS CATEGORÍAS
		ASESORIA_PASTORAL,
		ASOCIACIONES_Y_GRUPOS,
		AUDITORIOS,
		BANCOS_Y_CAJEROS_AUTOMATICOS,
		CAFETERIAS,
		CENTRO_DE_FOTOCOPIADO,
		CENTROS_DE_ESTUDIOS_Y_CENTROS_DE_INVESTIGACION,
		COMEDORES_Y_FOOD_COURT,
		DEPARTAMENTOS_ACADEMICOS,
		DEPORTES,
		DIRECCIONES_Y_OFICINAS,
		EDIFICIOS,
		EDIFICIOS_MULTIFUNCIONALES,
		ESTACIONAMIENTOS,
		FACULTADES,
		FACULTADES_AUDITORIOS_Y_LABORATORIOS,
		INSTITUTOS_GENERICO,
		INSTITUTOS_SUBCATEGORIA,
		INSTITUTOS_DE_IDIOMAS,
		LABORATORIOS_Y_TALLERES,
		LIBRERIAS,
		MAQUINAS_EXPENDEDORAS,
		PABELLONES_DE_AULAS,
		PAGOS_Y_TRANSACCIONES,
		PAPELERIA_Y_SERVICIOS_DIGITALES,
		QUIOSCOS,
		SALAS_DE_LECTURA,
		SERVICIO_DE_TESORERIA,
		SERVICIOS_ALIMENTICIOS,
		SERVICIOS_DE_COMPUTADORAS_E_IMPRESORAS,
		SERVICIOS_DE_SALUD,
		SERVICIOS_HIGIENICOS,
		SISTEMAS_DE_BIBLIOTECAS,
		SISTEMAS_DE_BIBLIOTECAS_Y_SALAS_DE_LECTURA,
		TELEFONOS_DE_EMERGENCIA,
		TELEFONOS_PUBLICOS,
		TELEFONOS,
		VARIOS,
		ZONAS_DE_SEGURIDAD,
		//FIN NUEVO
		BYID,
		SEARCH
		};
	public enum DATAFORMAT {
		LUGARES
	};	
	
	//NUEVOS METODOS
	public static DATASOURCE getSupraCat(DATASOURCE datsource) {
		
		switch(datsource) {
			case ASESORIA_PASTORAL:		return DATASOURCE.ASESORIA_PASTORAL;
			case ASOCIACIONES_Y_GRUPOS:		return DATASOURCE.ASOCIACIONES_Y_GRUPOS;
			case CENTROS_DE_ESTUDIOS_Y_CENTROS_DE_INVESTIGACION:	return DATASOURCE.CENTROS_DE_ESTUDIOS_Y_CENTROS_DE_INVESTIGACION;
			case DEPORTES:		return DATASOURCE.DEPORTES;
			case DIRECCIONES_Y_OFICINAS:		return DATASOURCE.DIRECCIONES_Y_OFICINAS;
			case EDIFICIOS_MULTIFUNCIONALES:
			case EDIFICIOS:		return DATASOURCE.EDIFICIOS;
			case ESTACIONAMIENTOS:		return DATASOURCE.ESTACIONAMIENTOS;
			case FACULTADES:
			case AUDITORIOS:
			case DEPARTAMENTOS_ACADEMICOS:
			case LABORATORIOS_Y_TALLERES:
			case PABELLONES_DE_AULAS:
			case FACULTADES_AUDITORIOS_Y_LABORATORIOS:		return DATASOURCE.FACULTADES_AUDITORIOS_Y_LABORATORIOS;
			case INSTITUTOS_SUBCATEGORIA:
			case INSTITUTOS_DE_IDIOMAS:
			case INSTITUTOS_GENERICO:		return DATASOURCE.INSTITUTOS_GENERICO;
			case LIBRERIAS:		return DATASOURCE.LIBRERIAS;
			case SERVICIO_DE_TESORERIA:
			case BANCOS_Y_CAJEROS_AUTOMATICOS:
			case PAGOS_Y_TRANSACCIONES:		return DATASOURCE.PAGOS_Y_TRANSACCIONES;
			case CAFETERIAS:
			case COMEDORES_Y_FOOD_COURT:
			case MAQUINAS_EXPENDEDORAS:
			case QUIOSCOS:
			case SERVICIOS_ALIMENTICIOS:		return DATASOURCE.SERVICIOS_ALIMENTICIOS;
			case SERVICIOS_DE_COMPUTADORAS_E_IMPRESORAS:
			case CENTRO_DE_FOTOCOPIADO:
			case PAPELERIA_Y_SERVICIOS_DIGITALES:		return DATASOURCE.PAPELERIA_Y_SERVICIOS_DIGITALES;
			case SERVICIOS_DE_SALUD:		return DATASOURCE.SERVICIOS_DE_SALUD;
			case SERVICIOS_HIGIENICOS:		return DATASOURCE.SERVICIOS_HIGIENICOS;
			case SALAS_DE_LECTURA:
			case SISTEMAS_DE_BIBLIOTECAS:
			case SISTEMAS_DE_BIBLIOTECAS_Y_SALAS_DE_LECTURA:		return DATASOURCE.SISTEMAS_DE_BIBLIOTECAS_Y_SALAS_DE_LECTURA;
			case TELEFONOS_DE_EMERGENCIA:
			case TELEFONOS_PUBLICOS:
			case TELEFONOS:		return DATASOURCE.TELEFONOS;
			case VARIOS:		return DATASOURCE.VARIOS;
			
			default:	return null;
		}
	}
	
	public final static Item[] getSubCat(DATASOURCE datasource) {
		ArrayList<Item> subcategorias = new ArrayList<Item>();
		switch(datasource) {
			case ASESORIA_PASTORAL:		subcategorias.add(VFiltro.categoriasCompletas.get(datasource.ordinal()-1));
										break;
			
			case ASOCIACIONES_Y_GRUPOS:		subcategorias.add(VFiltro.categoriasCompletas.get(datasource.ordinal()-1));
											break;
											
			case CENTROS_DE_ESTUDIOS_Y_CENTROS_DE_INVESTIGACION:	subcategorias.add(VFiltro.categoriasCompletas.get(datasource.ordinal()-1));
																	break;
																	
			case DEPORTES:		subcategorias.add(VFiltro.categoriasCompletas.get(datasource.ordinal()-1));
								break;
								
			case DIRECCIONES_Y_OFICINAS:		subcategorias.add(VFiltro.categoriasCompletas.get(datasource.ordinal()-1));
												break;
			
			case EDIFICIOS:		subcategorias.add(VFiltro.categoriasCompletas.get(datasource.ordinal()-1));
								subcategorias.add(VFiltro.categoriasCompletas.get(DATASOURCE.EDIFICIOS_MULTIFUNCIONALES.ordinal()-1));
								break;
			
			case ESTACIONAMIENTOS:		subcategorias.add(VFiltro.categoriasCompletas.get(datasource.ordinal()-1));
										break;
										
			case FACULTADES_AUDITORIOS_Y_LABORATORIOS:		subcategorias.add(VFiltro.categoriasCompletas.get(datasource.ordinal()-1));
															subcategorias.add(VFiltro.categoriasCompletas.get(DATASOURCE.AUDITORIOS.ordinal()-1));
															subcategorias.add(VFiltro.categoriasCompletas.get(DATASOURCE.DEPARTAMENTOS_ACADEMICOS.ordinal()-1));
															subcategorias.add(VFiltro.categoriasCompletas.get(DATASOURCE.FACULTADES.ordinal()-1));
															subcategorias.add(VFiltro.categoriasCompletas.get(DATASOURCE.LABORATORIOS_Y_TALLERES.ordinal()-1));
															subcategorias.add(VFiltro.categoriasCompletas.get(DATASOURCE.PABELLONES_DE_AULAS.ordinal()-1));
															break;
			
			case INSTITUTOS_GENERICO:		subcategorias.add(VFiltro.categoriasCompletas.get(datasource.ordinal()-1));
											subcategorias.add(VFiltro.categoriasCompletas.get(DATASOURCE.INSTITUTOS_DE_IDIOMAS.ordinal()-1));
											subcategorias.add(VFiltro.categoriasCompletas.get(DATASOURCE.INSTITUTOS_SUBCATEGORIA.ordinal()-1));
											break;
			
			case LIBRERIAS:		subcategorias.add(VFiltro.categoriasCompletas.get(datasource.ordinal()-1));
								break;
			
			case PAGOS_Y_TRANSACCIONES:		subcategorias.add(VFiltro.categoriasCompletas.get(datasource.ordinal()-1));	
											subcategorias.add(VFiltro.categoriasCompletas.get(DATASOURCE.BANCOS_Y_CAJEROS_AUTOMATICOS.ordinal()-1));
											subcategorias.add(VFiltro.categoriasCompletas.get(DATASOURCE.SERVICIO_DE_TESORERIA.ordinal()-1));
											break;
			
			case SERVICIOS_ALIMENTICIOS:		subcategorias.add(VFiltro.categoriasCompletas.get(datasource.ordinal()-1));
												subcategorias.add(VFiltro.categoriasCompletas.get(DATASOURCE.CAFETERIAS.ordinal()-1));
												subcategorias.add(VFiltro.categoriasCompletas.get(DATASOURCE.COMEDORES_Y_FOOD_COURT.ordinal()-1));
												subcategorias.add(VFiltro.categoriasCompletas.get(DATASOURCE.MAQUINAS_EXPENDEDORAS.ordinal()-1));
												subcategorias.add(VFiltro.categoriasCompletas.get(DATASOURCE.QUIOSCOS.ordinal()-1));
												break;
			
			case PAPELERIA_Y_SERVICIOS_DIGITALES:		subcategorias.add(VFiltro.categoriasCompletas.get(datasource.ordinal()-1));
														subcategorias.add(VFiltro.categoriasCompletas.get(DATASOURCE.CENTRO_DE_FOTOCOPIADO.ordinal()-1));
														subcategorias.add(VFiltro.categoriasCompletas.get(DATASOURCE.SERVICIOS_DE_COMPUTADORAS_E_IMPRESORAS.ordinal()-1));
														break;
			
			case SERVICIOS_DE_SALUD:		subcategorias.add(VFiltro.categoriasCompletas.get(datasource.ordinal()-1));
											break;
			
			case SERVICIOS_HIGIENICOS:		subcategorias.add(VFiltro.categoriasCompletas.get(datasource.ordinal()-1));
											break;
			
			case SISTEMAS_DE_BIBLIOTECAS_Y_SALAS_DE_LECTURA:		subcategorias.add(VFiltro.categoriasCompletas.get(datasource.ordinal()-1));
																	subcategorias.add(VFiltro.categoriasCompletas.get(DATASOURCE.SALAS_DE_LECTURA.ordinal()-1));
																	subcategorias.add(VFiltro.categoriasCompletas.get(DATASOURCE.SISTEMAS_DE_BIBLIOTECAS.ordinal()-1));
																	break;
			
			case TELEFONOS:		subcategorias.add(VFiltro.categoriasCompletas.get(datasource.ordinal()-1));
								subcategorias.add(VFiltro.categoriasCompletas.get(DATASOURCE.TELEFONOS_DE_EMERGENCIA.ordinal()-1));
								subcategorias.add(VFiltro.categoriasCompletas.get(DATASOURCE.TELEFONOS_PUBLICOS.ordinal()-1));
								break;
								
			case VARIOS:		subcategorias.add(VFiltro.categoriasCompletas.get(datasource.ordinal()-1));
								break;
								
			default:	subcategorias.add(VFiltro.categoriasCompletas.get(DATASOURCE.VARIOS.ordinal()-1));
						break;
		}
		
		Item items[] = subcategorias.toArray(new Item[subcategorias.size()]);
		return items;
	}
	
	public static boolean esGenerico(int id) {
		boolean resultado = false;
		for (int i = 0; i < genericos.length; i++) {
			if (genericos[i].ordinal() == id) {
				resultado = true;
				break;
			}
		}
		return resultado;
	}
	//FIN NUEVOS METODOS
		
	//private static final String lugaresURL = "file://sdcard/guiaUbicuaPUCP/InternalJSON.json";
	//private static final String lugaresURL = "http://ubicar.inf.pucp.edu.pe/Ubicua/resource/ws/punto";
	
	
	public DataSource() {
		
	}
	
	public static Bitmap getBitmap(DATASOURCE ds, int dim) {
		Bitmap bitmap=null;
		bitmap = drawableToBitmap(VInicial.getContext().getResources().getDrawable(VInicial.getContext().getDataSourceCircleIconRA(ds)));
//		//resize bitmap
//		int bitmapDim = Math.min(bitmap.getWidth(), dim);
		bitmap = Bitmap.createScaledBitmap(bitmap, dim, dim, true);
		return bitmap;
	}
	
	public static Bitmap getBitmap(int ds, int dim,boolean tinkuy) {
		Bitmap bitmap=null;
		bitmap = drawableToBitmap(VInicial.getContext().getResources().getDrawable(VInicial.getContext().getDataSourceCircleIconRA(ds)));
//		//resize bitmap
//		int bitmapDim = Math.min(bitmap.getWidth(), dim);
		if (tinkuy) { 
			bitmap = Bitmap.createScaledBitmap(bitmap, bitmap.getWidth(), dim, true);
		} else
		{
			bitmap = Bitmap.createScaledBitmap(bitmap, dim, dim, true);
		}
		return bitmap;
	}
	
	public static Bitmap drawableToBitmap (Drawable drawable) {
	    if (drawable instanceof BitmapDrawable) {
	        return ((BitmapDrawable)drawable).getBitmap();
	    }

	    Bitmap bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight(), Config.ARGB_8888);
	    Canvas canvas = new Canvas(bitmap); 
	    drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
	    drawable.draw(canvas);

	    return bitmap;
//	    return adjustOpacity(bitmap, 20);
	}
	
//	/**
//	 * @param bitmap The source bitmap.
//	 * @param opacity a value between 0 (completely transparent) and 255 (completely
//	 * opaque).
//	 * @return The opacity-adjusted bitmap.  If the source bitmap is mutable it will be
//	 * adjusted and returned, otherwise a new bitmap is created.
//	 */
//	public static Bitmap adjustOpacity(Bitmap bitmap, int opacity)
//	{
//	    Bitmap mutableBitmap = bitmap.isMutable()
//	                           ? bitmap
//	                           : bitmap.copy(Bitmap.Config.ARGB_8888, true);
//	    Canvas canvas = new Canvas(mutableBitmap);
//	    int colour = (opacity & 0xFF) << 24;
//	    canvas.drawColor(colour, PorterDuff.Mode.DST_IN);
//	    return mutableBitmap;
//	}

	
	public static DATAFORMAT dataFormatFromDataSource(DATASOURCE ds) {
		return DATAFORMAT.LUGARES;
	}
	
	public static String createRequestURL(DATASOURCE source, double lat, double lon, double alt, float radius,String locale) {
		String ret="";
//		switch(source) {
		
//			case LUGARESURL: 
//				ret = lugaresURL;
//			break;
//			
//			case LFACULTADES: 
//				ret = lugaresURL + "?f=facultades";
//			break;
//			
//			case LDEPARTAMENTOS: 
//				ret = lugaresURL + "?f=departamentos";
//			break;
//			
//			case EVENTOSURL:
//				ret = lugaresURL + "?f=eventos";
//			break;
//			
//			case BYID:
//				ret = lugaresURL + "?f=" + locale;
//			break;
//			
//			case SEARCH:
//				ret = lugaresURL + "?b=" + locale;
//			break;
//
//			case LAUDITORIOS: 
//				ret = lugaresURL + "?f=auditorios";
//			break;
//			
//			case LBIBLIOTECAS: 
//				ret = lugaresURL + "?f=bibliotecas";
//			break;
//			
//			case LCAFETERIAS:
//				ret = lugaresURL + "?f=cafeterias";
//			break;
//			
//			case LINSTITUTOS:
//				ret = lugaresURL + "?f=institutos";
//			break;
//			
//			case LCENTROS:
//				ret = lugaresURL + "?f=centros";
//			break;
//			
//			case LDIRECCIONES:
//				ret = lugaresURL + "?f=direcciones";
//			break;
//			
//			case LOTROS:
//				ret = lugaresURL + "?f=otros";
//			break;		
//		}
		//CAMBIO
		ret = Utiles.getPuntosURL();
		//FIN CAMBIO
		return ret;		
	}
	
	public static int getColor(DATASOURCE datasource) {
		int ret;
		switch(datasource) {
//			case LFACULTADES:		ret=VInicial.getContext().getResources().getColor(R.color.cat_fac); break; // ff0000
//			case LDEPARTAMENTOS:	ret=VInicial.getContext().getResources().getColor(R.color.cat_dep); break; //ff950e
//			case LUGARESURL:		ret=VInicial.getContext().getResources().getColor(R.color.cat_pri); break; //008000
			case EVENTOSURL:		ret=VInicial.getContext().getResources().getColor(R.color.cat_eve); break; //ffffff
//			case LAUDITORIOS:		ret=VInicial.getContext().getResources().getColor(R.color.cat_aud); break;
//			case LBIBLIOTECAS:		ret=VInicial.getContext().getResources().getColor(R.color.cat_bib); break;
//			case LCAFETERIAS:		ret=VInicial.getContext().getResources().getColor(R.color.cat_caf); break;
////			case LINSTITUTOS:		ret=VInicial.getContext().getResources().getColor(R.color.cat_ins); break;
//			case LCENTROS:			ret=VInicial.getContext().getResources().getColor(R.color.cat_cen); break;
//			case LDIRECCIONES:		ret=VInicial.getContext().getResources().getColor(R.color.cat_dir); break;
//			case LOTROS:			ret=VInicial.getContext().getResources().getColor(R.color.cat_otr); break;
			
			//nuestras categorías
			/*COLOR 1 - ADMINISTRATIVO*/
			case DIRECCIONES_Y_OFICINAS:						ret=VInicial.getContext().getResources().getColor(R.color.cat_administrativo); break;
			
			/*COLOR 2 - SERVICIO*/
			case ASESORIA_PASTORAL:
			case BANCOS_Y_CAJEROS_AUTOMATICOS:
			case CAFETERIAS:
			case CENTRO_DE_FOTOCOPIADO:
			case COMEDORES_Y_FOOD_COURT:
			case EDIFICIOS_MULTIFUNCIONALES:
			case ESTACIONAMIENTOS:
			case MAQUINAS_EXPENDEDORAS:
			case PAGOS_Y_TRANSACCIONES:
			case PAPELERIA_Y_SERVICIOS_DIGITALES:
			case QUIOSCOS:
			case SERVICIO_DE_TESORERIA:
			case SERVICIOS_ALIMENTICIOS:
			case SERVICIOS_DE_COMPUTADORAS_E_IMPRESORAS:
			case SERVICIOS_DE_SALUD:
			case SERVICIOS_HIGIENICOS:
			case TELEFONOS_PUBLICOS:
			case TELEFONOS:										ret=VInicial.getContext().getResources().getColor(R.color.cat_servicio); break;
			
			/*COLOR 3 - ACADÉMICO*/
			case AUDITORIOS:
			case CENTROS_DE_ESTUDIOS_Y_CENTROS_DE_INVESTIGACION:
			case DEPARTAMENTOS_ACADEMICOS:
			case FACULTADES:
			case FACULTADES_AUDITORIOS_Y_LABORATORIOS:
			case INSTITUTOS_GENERICO:
			case INSTITUTOS_SUBCATEGORIA:
			case SISTEMAS_DE_BIBLIOTECAS:
			case INSTITUTOS_DE_IDIOMAS:
			case LIBRERIAS:
			case PABELLONES_DE_AULAS:
			case SALAS_DE_LECTURA:
			case SISTEMAS_DE_BIBLIOTECAS_Y_SALAS_DE_LECTURA:	ret=VInicial.getContext().getResources().getColor(R.color.cat_academico); break;
			
			/*COLOR 4 - LABORATORIOS Y TALLERES*/
			case LABORATORIOS_Y_TALLERES: 						ret=VInicial.getContext().getResources().getColor(R.color.cat_laboratorio); break;
			
			/*COLOR 5 - EMERGENCIA*/
			case TELEFONOS_DE_EMERGENCIA: 						ret=VInicial.getContext().getResources().getColor(R.color.cat_emergencia); break;
			
			/*COLOR 6 - OTROS*/
			case ASOCIACIONES_Y_GRUPOS:
			case DEPORTES:		
			case EDIFICIOS:		
			case VARIOS:										ret=VInicial.getContext().getResources().getColor(R.color.cat_otros); break;
			//fin - nuestras categorías

			default: ret=VInicial.getContext().getResources().getColor(R.color.cat_default); break;
		}
		return ret;
	}

	public static DATASOURCE obtenerDatasourceSegunId(String poiId) {
		//String tipo = poiId.substring(0, 3);
		
		if (poiId.equals("1"))	{
			return DATASOURCE.ASESORIA_PASTORAL;
		}
		else if (poiId.equals("2"))	{
			return DATASOURCE.ASOCIACIONES_Y_GRUPOS;
		}
		else if (poiId.equals("3"))	{
			return DATASOURCE.AUDITORIOS;
		}
		else if (poiId.equals("4"))	{
			return DATASOURCE.BANCOS_Y_CAJEROS_AUTOMATICOS;
		}
		else if (poiId.equals("5"))	{
			return DATASOURCE.CAFETERIAS;
		}
		else if (poiId.equals("6"))	{
			return DATASOURCE.CENTRO_DE_FOTOCOPIADO;
		}
		else if (poiId.equals("7"))	{
			return DATASOURCE.CENTROS_DE_ESTUDIOS_Y_CENTROS_DE_INVESTIGACION;
		}
		else if (poiId.equals("8"))	{
			return DATASOURCE.COMEDORES_Y_FOOD_COURT;
		}
		else if (poiId.equals("9"))	{
			return DATASOURCE.DEPARTAMENTOS_ACADEMICOS;
		}
		else if (poiId.equals("10"))	{
			return DATASOURCE.DEPORTES;
		}
		else if (poiId.equals("11"))	{
			return DATASOURCE.DIRECCIONES_Y_OFICINAS;
		}
		else if (poiId.equals("12"))	{
			return DATASOURCE.EDIFICIOS;
		}
		else if (poiId.equals("13"))	{
			return DATASOURCE.EDIFICIOS_MULTIFUNCIONALES;
		}
		else if (poiId.equals("14"))	{
			return DATASOURCE.ESTACIONAMIENTOS;
		}
		else if (poiId.equals("15"))	{
			return DATASOURCE.FACULTADES;
		}
		else if (poiId.equals("16"))	{
			return DATASOURCE.FACULTADES_AUDITORIOS_Y_LABORATORIOS;
		}
		else if (poiId.equals("17"))	{
			return DATASOURCE.INSTITUTOS_GENERICO;
		}
		else if (poiId.equals("18"))	{
			return DATASOURCE.INSTITUTOS_SUBCATEGORIA;
		}
		else if (poiId.equals("19"))	{
			return DATASOURCE.INSTITUTOS_DE_IDIOMAS;
		}
		else if (poiId.equals("20"))	{
			return DATASOURCE.LABORATORIOS_Y_TALLERES;
		}
		else if (poiId.equals("21"))	{
			return DATASOURCE.LIBRERIAS;
		}
		else if (poiId.equals("22"))	{
			return DATASOURCE.MAQUINAS_EXPENDEDORAS;
		}
		else if (poiId.equals("23"))	{
			return DATASOURCE.PABELLONES_DE_AULAS;
		}
		else if (poiId.equals("24"))	{
			return DATASOURCE.PAGOS_Y_TRANSACCIONES;
		}
		else if (poiId.equals("25"))	{
			return DATASOURCE.PAPELERIA_Y_SERVICIOS_DIGITALES;
		}
		else if (poiId.equals("26"))	{
			return DATASOURCE.QUIOSCOS;
		}
		else if (poiId.equals("27"))	{
			return DATASOURCE.SALAS_DE_LECTURA;
		}
		else if (poiId.equals("28"))	{
			return DATASOURCE.SERVICIO_DE_TESORERIA;
		}
		else if (poiId.equals("29"))	{
			return DATASOURCE.SERVICIOS_ALIMENTICIOS;
		}
		else if (poiId.equals("30"))	{
			return DATASOURCE.SERVICIOS_DE_COMPUTADORAS_E_IMPRESORAS;
		}
		else if (poiId.equals("31"))	{
			return DATASOURCE.SERVICIOS_DE_SALUD;
		}
		else if (poiId.equals("32"))	{
			return DATASOURCE.SERVICIOS_HIGIENICOS;
		}
		else if (poiId.equals("33"))	{
			return DATASOURCE.SISTEMAS_DE_BIBLIOTECAS;
		}
		else if (poiId.equals("34"))	{
			return DATASOURCE.SISTEMAS_DE_BIBLIOTECAS_Y_SALAS_DE_LECTURA;
		}
		else if (poiId.equals("35"))	{
			return DATASOURCE.TELEFONOS_DE_EMERGENCIA;
		}
		else if (poiId.equals("36"))	{
			return DATASOURCE.TELEFONOS_PUBLICOS;
		}
		else if (poiId.equals("37"))	{
			return DATASOURCE.TELEFONOS;
		}
		else if (poiId.equals("38"))	{
			return DATASOURCE.VARIOS;
		}
		else /*if (poiId.equals("39"))*/	{
			return DATASOURCE.VARIOS;
		}
		
	}
	
	
}
